home *** CD-ROM | disk | FTP | other *** search
/ ASME's Mechanical Engine…ing Toolkit 1997 December / ASME's Mechanical Engineering Toolkit 1997 December.iso / c_lang / varinc.lzh / PAGE292.C < prev    next >
Text File  |  1979-11-30  |  1KB  |  35 lines

  1. /* Compare array indexing using [] and using pointer access. */
  2. #include <time.h>
  3. #define LDIM 5000
  4.  
  5. main(ac, av)
  6. unsigned ac;
  7. char *av[];
  8.  
  9.    {
  10.    long longs[LDIM], sum;                     /* Use /STACK:32768 LINK flag. */
  11.    long beg_time, mid_time, end_time;
  12.    long *p_long = longs, *p_long2 = longs;
  13.    short ilong, itrial, ntrials = ((ac > 1) ? atoi(av[1]) : 1);
  14.  
  15.    time(&beg_time);                                    /* array index timing */
  16.    for (itrial = 0; itrial < ntrials; ++itrial)
  17.       {
  18.       for (ilong = 0; ilong < LDIM; ++ilong)
  19.          longs[ilong] = ilong;
  20.       for (sum = ilong = 0; ilong < LDIM; ++ilong)
  21.          sum += longs[ilong];
  22.       }
  23.    time(&mid_time);                             /* pointer-arithmetic timing */
  24.    for (itrial = 0; itrial < ntrials; ++itrial)
  25.       {
  26.       for (ilong = 0; ilong < LDIM; ++ilong)
  27.          *(p_long + ilong) = ilong;
  28.       for (sum = ilong = 0; ilong < LDIM; ++ilong)
  29.          sum += *(p_long2 + ilong);
  30.       }
  31.    time(&end_time);
  32.    printf("Array-Subscript Time:     %4ld\n", mid_time - beg_time);
  33.    printf("Pointer-Arithmetic Time:  %4ld\n", end_time - mid_time);
  34.    }
  35.